Various data processing systems have been developed including storage systems, cellular telephone systems, and radio transmission systems. In such systems data is transferred from a sender to a receiver via some medium. For example, in a storage system, data is sent from a sender (i.e., a write function) to a receiver (i.e., a read function) via a storage medium. As information is stored and transmitted in the form of digital data, errors are introduced that, if not corrected, can corrupt the data and render the information unusable. The effectiveness of any transfer is impacted by any losses in data caused by various factors. Many types of error checking systems have been developed to detect and correct errors in digital data. For example, in perhaps the simplest system, a parity bit can be added to a group of data bits, ensuring that the group of data bits (including the parity bit) has either an even or odd number of ones. The parity bits may also be used in error correction systems, including in low density parity check (LDPC) encoding and decoding circuits. In some cases, the data decoding circuit operates on a very large codeword that includes a number of parity bits to decode relatively large encoded data sectors. Traditional low density parity check encoders and decoders for relatively large sectors require large memory sizes and long latency.